<template>
  <div class="contarner-page" @click.stop="showLanguageHandel">
    <page-header ref="languageRef"></page-header>
    <main>
      <div class="downloader flex_ccenter" v-if="!success">
        <div class="container">
          <div class="banner-heading flex_ccenter">
            <div class="heading-item">
              <h1 class="title fw700 f-42 c-fff">
                Téléchargeur de photos Instagram
              </h1>
              <h2 class="sub c-fff f-18 fw400">
                Télécharger une photo depuis Instagram
              </h2>
            </div>
          </div>
          <div class="form flex_center">
            <div class="input-box flex_between">
              <!-- <input
                  type="text"
                  class="input f-18"
                  v-model="input"
                  @input="handleInput"
                  @paste="handleInput"
                  placeholder="Paste URL Instagram"
                  list="fruits"
                  name="fruit"
                />
                <datalist id="fruits">
                  <option value="Apple"></option>
                  <option value="Banana"></option>
                  <option value="Cherry"></option>
                </datalist> -->
              <input
                type="text"
                class="input f-18"
                v-model="input"
                :disabled="isHttpLoading"
                @input="handleInput"
                @paste="handleInput"
                @keydown="sendDownload($event)"
                placeholder="Paste URL Instagram"
              />
              <div
                class="Paste shou flex_center"
                @click="handleClickPasted"
                v-if="input == ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Paste</div>
              </div>
              <div
                class="clear shou flex_center"
                v-if="input != '' && !isHttpLoading"
                @click.stop="input = ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Clear</div>
              </div>
            </div>
            <div
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
              class="submit shou fw700 c-fff flex_center"
            >
              Download
            </div>
            <div v-else class="submit shou fw700 c-fff flex_center">
              Please wait
            </div>
          </div>
          <div class="app-submit flex_ccenter">
            <div
              class="submit flex_center"
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
            >
              <div class="fw700 c-fff f-21">Download</div>
            </div>
            <div class="submit flex_center" v-else>
              <div class="fw700 c-fff f-21">Please wait</div>
            </div>
          </div>
          <div class="loading" v-if="isHttpLoading">
            <div class="loading-dots flex_center">
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
            </div>
            <div class="tips f-18 flex_center">
              <div>
                Récupération des données, veuillez patienter quelques secondes!
              </div>
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError1">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Le site ne peut pas traiter votre lien car il est privé
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError2">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Les données que vous avez saisies ne constituent pas un lien.
              Veuillez entrer un lien valide, pour exemple:
              <div>https://www.instagram.com/reel/Cml9qu-ISqx</div>
            </div>
          </div>
        </div>
      </div>
      <!-- 广告位start -->
      <!-- 广告位end -->
      <div class="container" v-if="!success">
        <div class="body-content">
          <div class="app-box">
            <div class="app-box__info">
              <h3 class="app-box__title f-21 fw700 c-000">
                Télécharger avec l'application Insta Downloader
              </h3>
              <p class="f-16 c-ccc">
                Notre application offre une solution de téléchargement simple et
                rapide Vidéos Instagram, fournissant des vidéos de qualité HD
                sans filigranes.
              </p>
            </div>
            <div class="app-link">
              <a 
                  target="_blank" href="https://play.google.com/store/apps/details?id=ins.freevideodownload.pro">
                <img src="/static/images/google-play.webp" alt="Download app " />
              </a>
              <a href="https://apps.apple.com/us/app/repost-for-video-save-story/id6462401460"  target="_blank">
                <img src="/static/images/IOS.webp" alt="Download app " />
              </a>
            </div>
          </div>
          <div class="quick-info">
            <h3 class="f-32 c-000">
              Téléchargement de photos Instagram avec Savinginsta
            </h3>
            <p class="f-16 c-ccc">
              Avec des milliers de posts et des centaines de milliers de likes
              sur Au quotidien sur Instagram, de nombreux Instagrammers
              souhaitent enregistrer ces publications sur leurs ordinateurs
              personnels. Téléchargeur de photos Instagram de Savinginsta est là
              pour répondre à ce besoin, en vous aidant à enregistrer des photos
              Instagram facilement. C'est simple à utiliser et permet des
              téléchargements illimités. Quelles que soient les publications que
              vous aimez sur Instagram, Savinginsta peut vous aider en les
              téléchargeant.
            </p>
            <p class="f-16 c-ccc">
              Savinginsta est un téléchargeur de photos Instagram (IG) qui
              simplifie enregistrer des images d'Instagram. C'est totalement
              gratuit et sûr. Non l'installation du logiciel est requise sur
              votre ordinateur ou mobile téléphone; tout ce dont vous avez
              besoin est un lien photo Instagram. Le traitement est fait de
              notre côté, vous n'êtes donc qu'à un clic du téléchargement images
              sur vos appareils.
            </p>
          </div>
          <div class="how">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                Comment enregistrer (télécharger) des photos Instagram à l'aide
                de Savinginsta ?
              </h3>
            </div>
            <div class="steps">
              <p class="super f-16 fw700">
                C'est incroyablement facile. Voici un guide détaillé :
              </p>
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Étape01:</span>
                  <span class="f-16 c-000"
                    >Trouvez la publication Instagram avec votre image préférée
                    et obtenez le lien.</span
                  >
                </div>
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">Étape02:</span>
                <span class="f-16 c-000"
                  >Accédez à la page Savinginsta et collez le lien dans le barre
                  d'outils.</span
                >
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">Étape03:</span>
                <span class="f-16 c-000"
                  >Cliquez sur le bouton Télécharger pour enregistrer la photo
                  dans votre compte personnel. appareil.</span
                >
              </div>
            </div>
          </div>
          <div class="how">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                Comment télécharger des photos Instagram (Insta) sur iPhone
              </h3>
              <div class="note c-ccc f-16">
                Remarque : le téléchargement de photos Instagram ne fonctionne que si votre iPhone est un modèle 6s.
                 (6s Plus) ou version ultérieure.
              </div>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Étape01:</span>
                  <span class="f-16 c-000"
                    >Ouvrez Instagram sur votre iPhone, sélectionnez la photo Instagram
                     post que vous souhaitez enregistrer et copiez l'URL de la photo en cliquant sur
                     les 3 points au dessus du poteau.
                  </span>
                </div>
              </div>
              <div class="photo-bg">
                <img
                  class="img"
                  src="/static/images/instagram-photo-download.webp"
                  alt="copy the Instagram photo URL and paste"
                />
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">Step02:</span>
                <span class="f-16 c-000"
                  >Ouvrez Instagram Photo Downloader avec Safari et collez le
                   URL de la photo dans la barre d'outils.</span
                >
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">Step03:</span>
                <span class="f-16 c-000"
                  >Cliquez sur Télécharger, puis sélectionnez un serveur pour commencer à enregistrer le
                   Photo Instagram.</span
                >
              </div>
            </div>
            <div class="user-note f-16">
              <div class="app-tip"></div>
              <p>
                Notre outil est conçu pour vous aider à télécharger des vidéos et des images
                 téléchargé par votre propre compte. Nous nous réservons le droit de refuser
                 service si nos outils sont utilisés pour porter atteinte à la vie privée d'autrui
                 et du matériel.
              </p>

              <a class="fw700 c-blue" href="/terms-of-service"
                >Lisez nos conditions d’utilisation complètes ici.</a
              >
            </div>
          </div>
          <div class="faq-section">
            <h3 class="faq-title f-36 c-000 italic">FAQ</h3>
            <div class="accordion">
              <div
                id="faq"
                itemscope="itemscope"
                itemtype="https://schema.org/FAQPage"
              >
                <div
                  itemprop="mainEntity"
                  itemscope="itemscope"
                  itemtype="https://schema.org/Question"
                  class="accordion-item"
                  :key="k"
                  v-for="(item, k) in faqList"
                >
                  <h4 itemprop="name" class="accordion-title fw700 f-16">
                    {{ item.title }}
                  </h4>
                  <div
                    itemprop="acceptedAnswer"
                    itemscope=""
                    itemtype="https://schema.org/Answer"
                  >
                    <div
                      itemprop="text"
                      class="accordion-text f-16 c-ccc fw400"
                    >
                      {{ item.content }}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- 解析结果 start -->
      <div class="container" v-if="success">
        <success-content
          @refresh="refresh"
          :list="successList"
        ></success-content>
      </div>
      <!-- 解析结果 end -->
    </main>
    <footer>
      <div class="container">
        <div class="footer-content">
          <div class="footer-link">
            <div class="row flex_between">
              <div class="col-12">
                <div class="link-label fw700 c-000 f-21">Outils</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/fr/instagram-story-download"
                      >Téléchargeur d'histoires Instagram</nuxt-link
                    >
                  </li>
                  <li>
                    <nuxt-link to="/fr/instagram-reels-video-download"
                      >Téléchargeur de bobines Instagram</nuxt-link
                    >
                  </li>
                  <li>
                    <a href="https://savingtik.com/" target="_blank"
                      >Téléchargeur Tiktok</a
                    >
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Soutien</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/contact"> Contact </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/blog"> Blog </nuxt-link>
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Légal</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/terms-of-service">
                      Conditions d'utilisation
                    </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/privacy-policy"> politique de confidentialité </nuxt-link>
                  </li>
                </ul>
              </div>
            </div>
          </div>
          <div class="copyright flex_ccenter">
            <b class="fw700 f-21 c-000"
              >Nous ne sommes pas affiliés à Instagram ou Meta</b
            >
            <div class="c-ccc f-16">
              © {{new Date().getFullYear()}} Insta Downloader All rights reserved.
            </div>
          </div>
        </div>
      </div>
    </footer>
  </div>
</template>
  
  <script>
import { mapState, mapGetters, mapMutations } from "vuex";
import pageHeader from "~/components/page-header.vue";
import SuccessContent from "~/components/success-content.vue";
import CryptoJS from "crypto-js";
import { handleClick, checkString } from "@/plugins/Firebase.js";

export default {
  components: { pageHeader, SuccessContent },
  head: {
    htmlAttrs: {
      lang: "fr",
    },
    bodyAttrs: {
      "data-lang": "fr",
    },
    title:
      "Téléchargeur de photos Instagram - Téléchargement de photos Instagram avec Savinginsta",
    meta: [
      { property: "og:locale", content: "fr" },

      //Page Information
      {
        name: "description",
        content:
          "Instagram Photo Downloader qui vous permet de télécharger des photos de haute qualité en ligne. Avec l'outil de téléchargement de photos Instagram Savinginsta, vous pouvez télécharger les photos rapidement. Sans filigrane.",
      },
      //Schema.org Microdata
      {
        itemprop: "name",
        content:
          "Téléchargeur de photos Instagram - Téléchargement de photos Instagram avec Savinginsta",
      },
      // Facebook / OpenGraph
      {
        property: "og:title",
        content:
          "Téléchargeur de photos Instagram - Téléchargement de photos Instagram avec Savinginsta",
      },
      { property: "og:type", content: "website" },
      {
        property: "og:url",
        content: "https://savinginsta.com/fr/instagram-photo-download",
      },

      {
        property: "og:description",
        content:
          "Instagram Photo Downloader qui vous permet de télécharger des photos de haute qualité en ligne. Avec l'outil de téléchargement de photos Instagram Savinginsta, vous pouvez télécharger les photos rapidement. Sans filigrane.",
      },
      //Twitter
      { name: "twitter:card", content: "summary" },
      {
        name: "twitter:url",
        content: "https://savinginsta.com/fr/instagram-photo-download",
      },
      {
        name: "twitter:title",
        content:
          "Téléchargeur de photos Instagram - Téléchargement de photos Instagram avec Savinginsta",
      },
      {
        name: "twitter:description",
        content:
          "Instagram Photo Downloader qui vous permet de télécharger des photos de haute qualité en ligne. Avec l'outil de téléchargement de photos Instagram Savinginsta, vous pouvez télécharger les photos rapidement. Sans filigrane.",
      },
      //multilingual
      {
        name: "google",
        content: "notranslate",
      },
    ],
    link: [
      //multilingual
      {
        rel: "alternate",
        hreflang: "x-default",
        href: "https://savinginsta.com/fr/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "en",
        href: "https://savinginsta.com/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "en-in",
        href: "https://savinginsta.com/in/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "vi",
        href: "https://savinginsta.com/vn/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "tr",
        href: "https://savinginsta.com/tr/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "id",
        href: "https://savinginsta.com/id/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "fr",
        href: "https://savinginsta.com/fr/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "pt",
        href: "https://savinginsta.com/pt/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "ru",
        href: "https://savinginsta.com/ru/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "es",
        href: "https://savinginsta.com/es/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "ms",
        href: "https://savinginsta.com/ms/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "ko",
        href: "https://savinginsta.com/ko/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "ja",
        href: "https://savinginsta.com/ja/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "jv",
        href: "https://savinginsta.com/jv/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "cs",
        href: "https://savinginsta.com/cs/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "de",
        href: "https://savinginsta.com/de/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "it",
        href: "https://savinginsta.com/it/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "pl",
        href: "https://savinginsta.com/pl/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "hu",
        href: "https://savinginsta.com/hu/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "nl",
        href: "https://savinginsta.com/nl/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "ro",
        href: "https://savinginsta.com/ro/instagram-photo-download",
      },
      {
        rel: "alternate",
        hreflang: "el",
        href: "https://savinginsta.com/el/instagram-photo-download",
      },
      {
        rel: "canonical",
        href: "https://savinginsta.com/fr/instagram-photo-download",
      },
    ],
    script: [
      {
        json: {
          "@context": "http://schema.org",
          "@graph": [
            {
              "@type": "WebSite",
              name: "Savinginsta",
              alternateName: "Instagram downloader", 
              url: "https://savinginsta.com",
            },
            {
              "@type": "WebPage",
              name: "Téléchargeur de photos Instagram - Téléchargement de photos Instagram avec Savinginsta",
              inLanguage: "fr",
              description:
                "Instagram Photo Downloader qui vous permet de télécharger des photos de haute qualité en ligne. Avec l'outil de téléchargement de photos Instagram Savinginsta, vous pouvez télécharger les photos rapidement. Sans filigrane.",
              image: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg", //绝对路径
              url: "https://savinginsta.com/fr/instagram-photo-download",
            },
          ],
        },
        type: "application/ld+json"
      },
    ],
  },
  data() {
    return {
      input: "",
      success: false,
      isHttpLoading: false,
      httpError1: false,
      httpError2: false,
      current: 0,
      successList: [],
      faqList: [
        {
          title: `Qu'est-ce que le téléchargeur de photos Instagram ?`,
          content: `C'est un outil qui prend en charge le téléchargement de photos et de publications Instagram sur votre appareil personnel. Vous pouvez enregistrer des photos Insta sur PC, Mac, Android, iOS et iPhone.`,
        },
        {
          title: `Puis-je télécharger des photos privées Instagram ?`,
          content: `Non, Savinginsta prend uniquement en charge l'enregistrement de photos Instagram à partir de comptes publics.`,
        },
        {
          title: `Dois-je me connecter pour enregistrer des photos Instagram ?`,
          content: `Non, vous n'avez pas besoin de vous connecter à votre compte. Notre téléchargeur de photos IG est très sûr.`,
        },
        {
          title: `Le site Web prend-il en charge le téléchargement de photos Insta sur les ordinateurs ?`,
          content: `Oui, vous pouvez facilement télécharger des vidéos et des photos sur votre ordinateur. Voir aussi : Télécharger depuis Insta sur PC.`,
        },
        {
          title: `Pouvez-vous télécharger Insta photo pour Android ?`,
          content: `Oui, copiez simplement le lien de la publication et collez-le dans la case de notre site Web, puis enregistrez-le. Pour plus d'informations : Télécharger depuis Insta sur Android.`,
        },
        {
          title: `Où mon téléchargement de photo IG est-il enregistré après le téléchargement?`,
          content: `Les vidéos sont généralement enregistrées dans le dossier « Téléchargements » sur Android Mobile et PC.`,
        },
      ],
    };
  },
  computed: {
    ...mapGetters(["language"]),
  },
  mounted() {
    this.debouncedDownInput = this.debounce(this.downInput, 1000);
  },
  methods: {
    async downloadHandel() {
      if (this.isHttpLoading || this.input === "") return;
      this.isHttpLoading = false;
      this.httpError1 = false;
      this.httpError2 = false;
      this.input = this.input.replace(/^.*\s?https:\/\//, "https://");
      let type = checkString(this.input);
      const insUrlPattern = new RegExp("^http(s|)://.*instagram.com.*/.*$");
      if (!insUrlPattern.test(this.input)) {
        //点击解析下载按钮
        handleClick("action_ins_detect_boinsom", {
          site: "other",
          noislink: this.input,
          from: "photo",
          type: type,
        });
        this.httpError2 = true;
        this.isHttpLoading = false;
        return;
      }
      //点击解析下载按钮
      handleClick("action_ins_detect_boinsom", {
        site: "other",
        from: "photo",
        type: type,
      });
      //开始解析  ins_start_resolve
      handleClick("ins_start_resolve", {
        islink: this.input,
        from: "photo",
        type: type,
      });
      this.isHttpLoading = true;
      try {
        let result = this.uki(this.input);
        const response = await fetch(
          "https://savinginsta.com/api/downloader/analysis",
          {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({
              path: result,
            }),
          }
        );
        let encryptedResponse = await response.text();
        let parse = JSON.parse(encryptedResponse);
        if (parse.code != 200) {
          // 解析失败  ins_resolve_fail
          handleClick("ins_resolve_fail", {
            reason: "Failed to fetch",
            islink: this.input,
            from: "photo",
            type: type,
          });
          this.httpError1 = true;
          this.isHttpLoading = false;
          return;
        } else {
          let decryptedResponse = await this.eki(parse.data); // 使用你的解密函数
          this.successList = JSON.parse(decryptedResponse);
          this.success = true;
          this.isHttpLoading = false;
          //解析成功  ins_resolve_success
          handleClick("ins_resolve_success", {
            type: type,
            from: "photo",
          });
        }
      } catch (error) {
        // 解析失败  ins_resolve_fail
        handleClick("ins_resolve_fail", {
          reason: "Failed to fetch",
          islink: this.input,
          from: "photo",
          type: type,
        });
        console.error(error);
        this.httpError1 = true;
        this.isHttpLoading = false;
      }
    },

    uki(input) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      
  try {
        const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
        const keyBytes = CryptoJS.enc.Utf8.parse(complexKey);
        const inputBytes = CryptoJS.enc.Utf8.parse(input);
        const ivBytes = CryptoJS.lib.WordArray.random(IV_SIZE);
        const encrypted = CryptoJS.DES.encrypt(inputBytes, keyBytes, {
          iv: ivBytes,
          mode: CryptoJS.mode.CBC,
          padding: CryptoJS.pad.Pkcs7,
        });
        const ciphertext = ivBytes.concat(encrypted.ciphertext);
        return ciphertext.toString();
      } catch (error) {
        console.error(error);
        return null;
      }
    },
    eki(cipherText) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
      try {
        let keyBytes = CryptoJS.enc.Utf8.parse(
          complexKey.padEnd(CIPHER_ALGORITHM === "DES-CBC" ? 8 : 16)
        );
        let ivBytes = { iv: CryptoJS.enc.Hex.parse(process.env.DES_IV) }; // 如果使用CBC模式，需要一个初始化向量iv，这里是空向量
        let decrypted = CryptoJS.DES.decrypt(
          { ciphertext: CryptoJS.enc.Hex.parse(cipherText) },
          keyBytes,
          ivBytes
        );
        return decrypted.toString(CryptoJS.enc.Utf8);
      } catch (e) {
        console.error(e);
        return null;
      }
    },
    sendDownload(event) {
      if (event.keyCode === 13 && !this.isHttpLoading) {
        this.downloadHandel();
        event.preventDefault();
        return false;
      }
    },
    changeTab(k) {
      this.current = k;
    },
    handleInput(e) {
      this.debouncedDownInput(e);
    },
    debounce(fn, delay) {
      let timer;
      return function () {
        let context = this;
        let args = arguments;
        clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(context, args);
        }, delay);
      };
    },
    downInput(e) {
      let type = checkString(e.target.value);
      // 粘贴链接到输入框 action_ins_paste
      handleClick("action_ins_paste", {
        islink: e.target.value,
        from: "video",
        type: type,
      });
    },
    handleClickPasted() {
      if (!navigator.clipboard) {
        console.log("Clipboard API not available");
        return;
      }
      navigator.clipboard
        .readText()
        .then((text) => {
          this.input = text;
          let type = checkString(text);
          // 粘贴链接到输入框 action_ins_paste
          handleClick("action_ins_paste", {
            islink: text,
            from: "video",
            type: type,
          });
        })
        .catch((err) => {
          console.error("Failed to read clipboard contents: ", err);
        });
    },
    showLanguageHandel() {
      this.$refs.languageRef.close();
    },
    refresh() {
      this.success = false;
      this.input = "";
      this.successList = [];
    },
  },
};
</script>
  <style lang="scss" scoped>
@import "@/static/style/photo.css";
.loading {
  .loading-dots {
    position: relative;
    z-index: 999;
    margin-top: 70px;
  }

  .dot {
    background-color: #ffffff;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 0 10px;
    animation: loading-animation 1.5s infinite;
  }

  .dot:nth-child(2) {
    animation-delay: 0.5s;
  }

  .dot:nth-child(3) {
    animation-delay: 0.8s;
  }
  .dot:nth-child(4) {
    animation-delay: 1s;
  }
}
@keyframes loading-animation {
  0%,
  50%,
  80%,
  100% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
}
@media (max-width: 768px) {
  .loading {
    .loading-dots {
      margin-top: 26px !important;
    }
    .dot {
      width: 8px !important;
      height: 8px !important;
    }
  }
}
</style>
  